﻿using System;
using System.Data;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using DAL;
using NLog;

public partial class master : System.Web.UI.MasterPage
{
    #region Variables
    private static Logger _logger = LogManager.GetCurrentClassLogger();
    #endregion

    #region pageload

    private static readonly Regex REGEX_BETWEEN_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);

    private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s+", RegexOptions.Compiled);

    protected override void Render(HtmlTextWriter writer)
    {
        try
        {
            using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
            {
                base.Render(htmlwriter);
                string html = htmlwriter.InnerWriter.ToString();
                html = REGEX_BETWEEN_TAGS.Replace(html, "> <");
                html = REGEX_LINE_BREAKS.Replace(html, string.Empty);
                writer.Write(html.Trim());
            }
        }
        catch (Exception ex)
        {
            _logger.Error("master:::Render:::" + ex.Message);
            throw;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (this.Page.Request.FilePath.ToLower() == "/default.aspx")
            {
                Mainslider.Visible = true;
            }
            else
            {
                Mainslider.Visible = false;
            }
            if (!IsPostBack)
            {
                string sRequestURL = Request.Url.GetLeftPart(UriPartial.Authority) + Request.RawUrl;
                if (sRequestURL.Contains("tajid.com") || sRequestURL.Contains("http://www.tajid.com/"))
                {
                    Response.Redirect("http://www.livekora.net/LiveKora_LiveCode.htm", false);
                }
                else
                {

                    ManageArticls objManageArticls = new ManageArticls();
                    rptMarquee.DataSource = objManageArticls.GetMarqueeData();
                    rptMarquee.DataBind();
                    rptPopularNews.DataSource = objManageArticls.GetPopulerViewed();
                    rptPopularNews.DataBind();
                    
                    rptGetNewArticlsByDate.DataSource = objManageArticls.GetNewArticlsByDate();
                    rptGetNewArticlsByDate.DataBind();


                    rptGetUserClientArticls.DataSource = objManageArticls.GetUserClientArticls();
                    rptGetUserClientArticls.DataBind();


                    


                    DataSet dsGetFeatureNewsTopSlider = objManageArticls.GetFeatureNewsTopSlider();
                    rptThumSlider.DataSource = dsGetFeatureNewsTopSlider;
                    rptThumSlider.DataBind();
                    rptLargSlider.DataSource = dsGetFeatureNewsTopSlider;
                    rptLargSlider.DataBind();


                    if (FormsFunction.GetLiveKoraCookie() != null)
                    {
                        string[] arrUserInfo = FormsFunction.GetLiveKoraCookie();
                        aUserName.InnerHtml = "مرحبا (" + arrUserInfo[1].ToString() + ")";
                        aUserName.HRef = "../../../Dashboard";
                        LiLogout.Style.Add("display", "");
                    }
                    else
                    {
                        aUserName.InnerHtml = "مستخدم جديد / الدخول الى الحساب";
                        aUserName.HRef = "../../../User";
                        LiLogout.Style.Add("display", "none");
                    }

                    DateTime dt = DateTime.Now.AddMinutes(60);
                    Response.Cache.SetExpires(dt);
                    Response.Cache.SetCacheability(HttpCacheability.NoCache);
                    Response.Cache.SetMaxAge(new TimeSpan(dt.ToFileTime()));
                    Response.AddHeader("Expires", "Thu, 01 Dec 2020 16:00:00 GMT");
                }
            }
        }
        catch (Exception ex)
        {
            _logger.Error("master:::Page_Load:::" + ex.StackTrace);
            throw;
        }
    }

    #endregion

    #region Methods
    protected string GetDateFormat(string sDataTime)
    {
        try
        {
            return Convert.ToDateTime(sDataTime).ToShortDateString();
        }
        catch (Exception)
        {
            return "Unknown";
        }
    }
    //protected string GetWebsiteKeywords()
    //{
    //    try
    //    {
    //        if (!string.IsNullOrEmpty(FormsFunction.RetrieveWebConfig().MetaKeywords))
    //            return "<meta name='keywords' content='" + FormsFunction.RetrieveWebConfig().MetaKeywords + "' />";
    //        else
    //            return "<meta name='keywords' content='liveKora,لايف كورة,كرة القدم,سبورت,موقع رياضى,نتائج مباريات,جدول المباريات,الدوري الاسباني,الدوري الانجليزي,الدوري الايطالي' />";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("SiteMaster::Client:::GetWebsiteKeywords:::" + ex.Message);
    //        return "<meta name='keywords' content='liveKora,لايف كورة,كرة القدم,سبورت,موقع رياضى,نتائج مباريات,جدول المباريات,الدوري الاسباني,الدوري الانجليزي,الدوري الايطالي' />";
    //    }
    //}
    //protected string GetCasheStatus()
    //{
    //    try
    //    {
    //        if (FormsFunction.RetrieveWebConfig().CacheStatus == "1")
    //            return "<META HTTP-EQUIV='CACHE-CONTROL' CONTENT='Public'>";
    //        else
    //            return "<META HTTP-EQUIV='CACHE-CONTROL' CONTENT='no-Cache'>";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("SiteMaster::Client:::GetCasheStatus:::" + ex.Message);
    //        return "<META HTTP-EQUIV='CACHE-CONTROL' CONTENT='Public'>";
    //    }
    //}
    protected string GetThumManagerUser(string sUserImageProfile, string FacebookID)
    {
        try
        {
            if (!string.IsNullOrEmpty(FacebookID))
            {
                return string.Format("https://graph.facebook.com/{0}/picture", FacebookID);
            }
            else
            { 
                if (sUserImageProfile == "null" || string.IsNullOrEmpty(sUserImageProfile))
                {
                    return "../../../images/UserProfiles/LivekoraUnknowUser.png";
                }
                else
                {
                    return sUserImageProfile;
                }
            }
        }
        catch (Exception)
        {

            return "";
        }
    }

    protected string GetThumManager(string sArticlsThumb, string sArticlsVedio)
    {
        try
        {
            if (sArticlsVedio == "null" || string.IsNullOrEmpty(sArticlsVedio))
            {
                return "../../../" + sArticlsThumb;
            }
            else
            {
                string[] parts = sArticlsVedio.Split(new[] { "=" }, int.MaxValue, StringSplitOptions.None);
                return "http://img.youtube.com/vi/" + parts[1] + "/mqdefault.jpg";
            }
        }
        catch (Exception)
        {

            return "";
        }
    }
    //protected string GetFaceBookWebsiteTitle()
    //{
    //    try
    //    {
    //        if (!string.IsNullOrEmpty(FormsFunction.RetrieveWebConfig().SiteName))
    //            return "<meta property='og:title' content='" + FormsFunction.RetrieveWebConfig().SiteName + "' />";
    //        else
    //            return "<meta property='og:title' content='أخبار كرة القدم | لايف كورة الرياضي | آخر الأحداث الرياضية و كرة القدم – LiveKora  لايف كورة' />";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("SiteMaster::Client:::GetFaceBookWebsiteTitle:::" + ex.Message);
    //        return "<meta property='og:title' content='أخبار كرة القدم | لايف كورة الرياضي | آخر الأحداث الرياضية و كرة القدم – LiveKora  لايف كورة' />";
    //    }
    //}
    //protected string GetFaceBookGetWebsiteDesceiption()
    //{
    //    try
    //    {
    //        if (!string.IsNullOrEmpty(FormsFunction.RetrieveWebConfig().MetaDescription))
    //            return "<meta property='og:description' content='" + FormsFunction.RetrieveWebConfig().MetaDescription + "' />";
    //        else
    //            return "<meta property='og:description' content='موقع رياضي رائع يغطي كافة اخبار الدور الاسباني و الكرة الانجليزية و الكرة الايطالية و الكرة العالمية جميعا و مواعيد المباريات والبث المباشر للمباريات المهمة و الحصرية ونتائج المباريات  - liveKora' />";
    //    }
    //    catch (Exception ex)
    //    {
    //        _logger.Error("SiteMaster::Client:::GetFaceBookGetWebsiteDesceiption:::" + ex.Message);
    //        return "<meta property='og:description' content='موقع رياضي رائع يغطي كافة اخبار الدور الاسباني و الكرة الانجليزية و الكرة الايطالية و الكرة العالمية جميعا و مواعيد المباريات والبث المباشر للمباريات المهمة و الحصرية ونتائج المباريات  - liveKora' />";
    //    }
    //}
    protected string GenerateURL(object Title, object strId)
    {
        string strTitle = Title.ToString();

        //#region Generate SEO Friendly URL based on Title

        strTitle = strTitle.Trim();
        strTitle = strTitle.Trim('-');

        strTitle = strTitle.ToLower();
        char[] chars = @"$%#@!*?;:~`+=()[]{}|\'<>,/^&"".".ToCharArray();
        strTitle = strTitle.Replace("c#", "C-Sharp");
        strTitle = strTitle.Replace("vb.net", "VB-Net");
        strTitle = strTitle.Replace("asp.net", "Asp-Net");
        strTitle = strTitle.Replace(".", "-");
        for (int i = 0; i < chars.Length; i++)
        {
            string strChar = chars.GetValue(i).ToString();
            if (strTitle.Contains(strChar))
            {
                strTitle = strTitle.Replace(strChar, string.Empty);
            }
        }
        strTitle = strTitle.Replace(" ", "-");

        strTitle = strTitle.Replace("--", "-");
        strTitle = strTitle.Replace("---", "-");
        strTitle = strTitle.Replace("----", "-");
        strTitle = strTitle.Replace("-----", "-");
        strTitle = strTitle.Replace("----", "-");
        strTitle = strTitle.Replace("---", "-");
        strTitle = strTitle.Replace("--", "-");
        strTitle = strTitle.Trim();
        strTitle = strTitle.Trim('-');
        strTitle = "../../../Articles/" + strId + "/" + strTitle;
        return strTitle;
    }
    #endregion
}
